package clases;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.swing.JOptionPane;

public class utilidades_class {

	private SimpleDateFormat formatoinsertar;
	private SimpleDateFormat formatomostrar;
	private SimpleDateFormat formatomostrar2;
	private SimpleDateFormat insertarhora;
	private SimpleDateFormat mostrarmes;
	private SimpleDateFormat mostraranio;
	
	public utilidades_class()
	{
		formatoinsertar= new SimpleDateFormat("yyyy-MM-dd");
		formatomostrar= new SimpleDateFormat("dd-MM-yyyy");
		formatomostrar2= new SimpleDateFormat("dd/MM/yyyy");
		insertarhora= new SimpleDateFormat("HH:mm:ss");
		mostrarmes= new SimpleDateFormat("MMMM");
		mostraranio= new SimpleDateFormat("yyyy");
	}
	
	public String insertarfecha(Date fecha)
	{
		return formatoinsertar.format(fecha);
	}
	
	public String mostrarfecha (Date fecha)
	{
		return formatomostrar.format(fecha);
	}
	
	public String mostrarmes(Date fecha)
	{
		return mostrarmes.format(fecha);
	}
	
	public String mostraranio(Date fecha)
	{
		return mostraranio.format(fecha);
	}
	
	
	public Date parseFechaIns(String fecha)
	{
		try {
			return formatoinsertar.parse(fecha);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}
	}
	public Date parseFechaMos(String fecha)
	{
		try {
			return formatomostrar.parse(fecha);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}
	}
	public Date parseFechaMos2(String fecha)
	{
		try {
			return formatomostrar2.parse(fecha);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}
	}
	
	
	
	
	
	public Date parseFecha(String fecha)
	{
		try {
			return formatomostrar.parse(fecha);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}
	}
	
	public String insertarhora(Date hora)
	{
		return insertarhora.format(hora);
	}
	
	public String MD5(String contrasena) {
	       try
	       {
		        MessageDigest m=MessageDigest.getInstance("MD5");
		        m.update(contrasena.getBytes(),0,contrasena.length());
		        return new BigInteger(1,m.digest()).toString(16);
	       }
	       catch(Exception ex)
	       {
	    	   JOptionPane.showMessageDialog(null, ex.toString());
	    	   return null;
	       }
	}
	
	
	public static double copiarArchivo(File fuente, File destino) {
		BufferedInputStream buffer_origen = null;
		BufferedOutputStream buffer_destino = null;
		byte[] lectura = new byte[64];
		int contador = 0;//cuenta cuantos paquetes de 64 bytes se escriben en disco.
		try {
		buffer_destino = new BufferedOutputStream(new FileOutputStream(destino));
		buffer_origen = new BufferedInputStream(new FileInputStream(fuente));
		int leido = -1;//condicion de paro
		do {
		leido = buffer_origen.read(lectura, 0, lectura.length);//lee 64 bytes
		buffer_destino.write(lectura, 0, lectura.length);//escribe 64 bytes
		contador++;//cuenta los paquetes
		} while (leido != -1);
		//Cerrando los archivos

		buffer_destino.close();
		buffer_origen.close();
		} catch (IOException ex) {
		System.out.println("no se pudo leer");
		}//--->fin de catch

		return (double) (contador * 64/ 1048576);//calculo de MB copiados
		}//----->fin del metodo copiar archivos	
	
	
	public void crearCarpetaReportes()
	{
		File carpeta = new File(System.getProperty("user.dir")+"\\dir");
		if(!carpeta.exists()) carpeta.mkdir();
	}
	
	
}

	
